package pers.wensheng.patterns.structural_pattern.decorator_pattern.decorator;

import lombok.Getter;
import lombok.Setter;
import pers.wensheng.patterns.structural_pattern.decorator_pattern.entity.FastFood;

/**
 * 装饰者类
 * 抽象装饰者角色，核心角色
 * 也设置为抽象类，因为不知道具体加什么所以无法计算价格
 * 聚合主饭，继承主饭接口
 */
@Getter
@Setter
public abstract class Garnish extends FastFood {
    /**
     * 还要聚合快餐的变量，聚合主饭，继承主饭接口
     *
     * 这里套了好几层对象，存放以前的饭对象
     * 这里不赋值，静态代理也是继承并聚合操作对象，但是直接赋值
     */
    private FastFood fastFood;

    /**
     * ------------------------
     * 构造方法
     */
    public Garnish(FastFood fastFood, float price, String desc) {
        super(price, desc);
        this.fastFood = fastFood;
    }

}
